export default Behavior({
    created: function () {
      this.checkInitShare();
    },
    methods: {
      checkInitShare() {
        wx.xrScene = undefined;
  
        if (!this.scene) {
          setTimeout(() => {
            this.checkInitShare()
          }, 100);
          return;
        }
  
        if (this.scene.ar) {
          if (this.scene.ar.ready) {
            this.initARTrackerState(this.scene);    
          } else { 
            this.scene.event.add('ar-ready', () => this.initARTrackerState(this.scene));
          }
        }
  
        if (!this.scene.share.supported) {
          console.warn('Not support xr-frame share system now!');
          return;
        }
  
        this.sharing = false;
        wx.xrScene = this.scene;
      },
      initARTrackerState(scene) {
        const xrFrameSystem = wx.getXrFrameSystem();
        scene.dfs(() => {}, undefined, true, el => {
          const comp = el.getComponent(xrFrameSystem.ARTracker);
          if (comp) {
            if (typeof comp.state === 'number') {
              this.triggerEvent('arTrackerState', {state: comp.state, error: comp.errorMessage});
              el.event.add('ar-tracker-state', tracker => {
                this.triggerEvent('arTrackerState', {state: tracker.state, error: tracker.errorMessage});
              });
            }
            return true;
          }
        });
      }
    }
  })